package io.mybatis.example.springboot.model;

import io.mybatis.provider.Entity;
import org.apache.ibatis.type.JdbcType;

import lombok.Getter;
import lombok.Setter;

import java.util.Date;

/**
 * gen_table - 代码生成业务表
 *
 * @author mkj
 */
@Getter
@Setter
@Entity.Table("gen_table" remark = "代码生成业务表", autoResultMap = true)
public class GenTableDO {
  @Entity.Column(value = "table_id", id = true, remark = "编号", updatable = false, insertable = false)
  private Long tableId;

  @Entity.Column(value = "table_name", remark = "表名称")
  private String tableName;

  @Entity.Column(value = "table_comment", remark = "表描述")
  private String tableComment;

  @Entity.Column(value = "sub_table_name", remark = "关联子表的表名")
  private String subTableName;

  @Entity.Column(value = "sub_table_fk_name", remark = "子表关联的外键名")
  private String subTableFkName;

  @Entity.Column(value = "class_name", remark = "实体类名称")
  private String className;

  @Entity.Column(value = "tpl_category", remark = "使用的模板（crud单表操作 tree树表操作）")
  private String tplCategory;

  @Entity.Column(value = "package_name", remark = "生成包路径")
  private String packageName;

  @Entity.Column(value = "module_name", remark = "生成模块名")
  private String moduleName;

  @Entity.Column(value = "business_name", remark = "生成业务名")
  private String businessName;

  @Entity.Column(value = "function_name", remark = "生成功能名")
  private String functionName;

  @Entity.Column(value = "function_author", remark = "生成功能作者")
  private String functionAuthor;

  @Entity.Column(value = "gen_type", remark = "生成代码方式（0zip压缩包 1自定义路径）")
  private String genType;

  @Entity.Column(value = "gen_path", remark = "生成路径（不填默认项目路径）")
  private String genPath;

  @Entity.Column(value = "options", remark = "其它生成选项")
  private String options;

  @Entity.Column(value = "create_by", remark = "创建者")
  private String createBy;

  @Entity.Column(value = "create_time", remark = "创建时间", jdbcType = JdbcType.TIMESTAMP)
  private Date createTime;

  @Entity.Column(value = "update_by", remark = "更新者")
  private String updateBy;

  @Entity.Column(value = "update_time", remark = "更新时间", jdbcType = JdbcType.TIMESTAMP)
  private Date updateTime;

  @Entity.Column(value = "remark", remark = "备注")
  private String remark;

}
